#ifndef __TASKQUEUE_H__
#define __TASKQUEUE_H__

#include "head.h"
//任务结点
typedef struct taskNode{
    int clientFd;
    struct taskNode *pNext;
}TaskNode_t, *pTaskNode_t;

//任务队列
typedef struct {
    char exitFlag;              //退出标志位 1：有序退出  0：继续工作
    int exited;                 //线程池中已经退出的数量
    int size;                   //任务队列中任务结点的数量
    pTaskNode_t pHead, pTail;   //队首指针和队尾指针
    pthread_cond_t cond1;       //条件变量1,
    pthread_cond_t cond2;       //条件变量1,
    pthread_mutex_t mutex;      //互斥锁
}TaskQue_t, *pTaskQue_t;

//任务队列相关函数的声明
int taskQueInit(pTaskQue_t pQue);                       //初始胡任务队列
int taskQueInsert(pTaskQue_t pQue, pTaskNode_t pNew);   //把的任务节点插入到任务队列中
int taskQueGet(pTaskQue_t pQue, pTaskNode_t *pGet);     //从任务队列中获取任务结点

#endif
